home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / FGL402F.ZIP / EXFOR.ARJ / TEMP / 12-04.FOR < prev    next >
Text File  |  1995-01-20  |  2KB  |  70 lines

  1. $INCLUDE: 'C:\FG\FASTGRAF.FI'
  2.  
  3.       PROGRAM MAIN
  4.  
  5.       INTEGER VISUAL, HIDDEN
  6.       PARAMETER (VISUAL=0)
  7.       PARAMETER (HIDDEN=1)
  8.  
  9.       INTEGER XMIN(0:11), YMAX(0:11)
  10.       INTEGER NEW_MODE, OLD_MODE
  11.       INTEGER FRAME, OFFSET
  12.       INTEGER I, X, Y
  13.       INTEGER STATUS
  14.       INTEGER FG_ALLOCATE, FG_BESTMODE, FG_FREEPAGE, FG_GETMODE
  15.  
  16.       DATA XMIN / 0, 96,192,  0, 96,192,  0, 96,192,  0, 96,192/
  17.       DATA YMAX /49, 49, 49, 99, 99, 99,149,149,149,199,199,199/
  18.  
  19. C  initialize the video environment
  20.  
  21.       CALL FG_INITPM
  22.       NEW_MODE = FG_BESTMODE(320,200,2)
  23.       IF (NEW_MODE .LT. 0 .OR. NEW_MODE .EQ. 12) THEN
  24.          STOP 'This program requires a 320 x 200 color graphics mode.'
  25.       END IF
  26.       OLD_MODE = FG_GETMODE()
  27.       CALL FG_SETMODE(NEW_MODE)
  28.       STATUS = FG_ALLOCATE(HIDDEN)
  29.  
  30. C  draw the background in the upper left corner
  31.  
  32.       CALL FG_SETPAGE(HIDDEN)
  33.       CALL FG_SETCOLOR(1)
  34.       CALL FG_RECT(0,95,0,49)
  35.       CALL FG_SETCOLOR(15)
  36.       CALL FG_MOVE(48,25)
  37.       CALL FG_ELLIPSE(20,20)
  38.  
  39. C  display the animated object against each background
  40.  
  41.       CALL FG_SETCOLOR(10)
  42.       OFFSET = -10
  43.       DO 10 I = 1,11
  44.          X = XMIN(I)
  45.          Y = YMAX(I)
  46.          CALL FG_TRANSFER(0,95,0,49,X,Y,HIDDEN,HIDDEN)
  47.          CALL FG_SETCLIP(X,X+95,0,199)
  48.          CALL FG_CLPRECT(X+OFFSET,X+OFFSET+19,Y-29,Y-20)
  49.          OFFSET = OFFSET + 10
  50. 10    CONTINUE
  51.  
  52. C  slide the object across the background three times
  53.  
  54.       DO 20 I = 0,35
  55.          FRAME = MOD(I,12)
  56.          X = XMIN(FRAME)
  57.          Y = YMAX(FRAME)
  58.          CALL FG_TRANSFER(X,X+95,Y-49,Y,112,124,HIDDEN,VISUAL)
  59.          CALL FG_WAITFOR(2)
  60. 20    CONTINUE
  61.  
  62. C  restore the original video mode and return to DOS
  63.  
  64.       STATUS = FG_FREEPAGE(HIDDEN)
  65.       CALL FG_SETMODE(OLD_MODE)
  66.       CALL FG_RESET
  67.  
  68.       STOP ' '
  69.       END
  70.